The present invention relates to a data communication system for data communication between servers and clients.
Internet has spread rapidly and services performed conventionally at sales and business counters such as ticket reservation, banking and stock exchanges have been also provided through the Internet. Further, communication techniques have also progressed and surroundings where the services can be enjoyed not only from a home but also from a portable telephone have been arranged.
In the conventional system, however, clients make service requests to servers directly, and a lot of requests from the clients are concentrated to each server. Consequently, there has arisen a problem that communication lines and server apparatuses are saturated with requests from many users, and any response cannot be returned in a certain time or from a certain access destination even if users retry to make requests many times.
To solve the above problem, there is a communication method using a proxy. The data communication method between servers and clients using a communication protocol HTTP (Hypertext Transfer Protocol), and the data communication method between servers and clients via a proxy are described in RFC2028 “Hypertext Transfer Protocol . . . HTTP/1.1”, pp. 11–13, issued in January 1997.
FIG. 2 illustrates a data communication method using a conventional data communication method between servers and clients. In the method of FIG. 2, the data communication is performed as follows: Each client (2) makes connection to a server (1) individually to establish a communication path (3). The client (2) uses the HTTP to issues a service request (100) for data (21) in the server (1). The server (1) responds to the service requests (100) and returns the data (21) as a response (110).
FIG. 3 illustrates a data transfer method using a proxy (4) which is a relay apparatus. In the method of FIG. 3, the proxy (4) includes a relay unit (51) for relaying communication, a storage area (referred to as a cache area) (53) for storing the relayed data (21) as cache data (40), and a storage unit (referred to as a caching unit) (52) for controlling to store (referring to as cache) the data (21) in the cache area (53). When the proxy (4) receives a service request (100) from each client (2), the proxy (4) uses the caching unit (52) to examine whether the requested data (21) is already cached in the cache area (53).
The judgment as to whether the requested data is already cached, can be attained by providing, for example, a table indicating a correspondence between URLs (Uniform Resource Locators) corresponding to addresses of the cache data (40) and addresses of the cache area (53) in which the corresponding cache data (40) are stored, and checking the table using a URL of the requested data (21) as a key.
When the cache data (40) corresponding to the requested data is detected, the detected cache data (40) is returned as a response (110) to the client (2) issuing the request. When there is no cache data corresponding to the requested data, the relay unit (51) transfers the service request (100) to a server (1) as a request (200) from the proxy (4), and the server (1) returns the corresponding data (21) to the proxy (4) as a response (210). The relay unit (51) of the proxy (4) receives the response (210), and requests the caching unit (52) to store the data (21) returned together with the response (210) in the cache area (53) as cache data (40) if it is possible. Further, the relay unit (51) relays the response (210) to the client (2) as a response (110) to return the data (21) obtained from the server (1). That is, in the system of FIG. 3, when the cache data (40) corresponding to the requested data is stored, the proxy (4) can return a response (110) to the client (2) using the cache, and service requests (100) from the clients (2) can be processed in the distributed manner by providing a plurality of proxies (4).
In the data communication method between the server and the client shown in FIG. 2, it is possible to cope with many requests by increasing server facilities on the service providing side. However, it is economically difficult to always provide excessive amount of communication lines and server apparatuses to cope with non-frequent temporary cases where access requests concentrate several times more than those at normal time.
Further, even if the proxy technique of FIG. 3 is used, it is impossible for the conventional proxy to provide fine-grain services where that services for the data provided in servers are changed in accordance with the user's attribute. Therefore, the cache data cannot be utilized, and all requests from clients must be transferred to servers. This causes a problem that requests are concentrated to the server, and quick responses cannot be returned same as the case of FIG. 2.
There is a possibility that such circumstances cause a serious problem for services coping with money, specifically commercial trading.